package com.mp.negocio;

import com.mp.dao.ItemDAO;
import com.mp.db.jpa.modelo.Item;
import com.mp.db.jpa.modelo.SessaoUsuario;
import com.mp.db.jpa.modelo.TipoUnidade;
import java.util.List;



public class ItemService 
{
    private ItemDAO itemDAO = new ItemDAO();
    private SessaoUsuarioService sessaoUsuarioService = new SessaoUsuarioService();
    
    public Item obterItem(int id) throws Exception
    {
        Item itemBanco = itemDAO.obterItem(id);
        
        if(itemBanco == null)
        {
            throw new Exception("Item não encontrada na base de dados.");
        }
        
        return itemBanco;
    }
    
    public TipoUnidade obterTipoUnidade(int idSessao,int idItem) throws Exception
    {
        sessaoUsuarioService.obterSessaoUsuario(idSessao); 
        Item itemBanco = obterItem(idItem);
        
        return itemBanco.getTipoUnidade();         
    }
    
        
    public Item obterItemPorDesc(String desc) 
    {
        return itemDAO.obterItemPorDesc(desc);
    }
    
    public List<Item> obterListaItemPorTipoItem(Integer sessao) throws Exception   
    {
        SessaoUsuario sessaoBanco = sessaoUsuarioService.obterSessaoUsuario(sessao);  
        
        List<Item> listaItem = itemDAO.obterListaItemPorTipoItem(sessaoBanco.getUsuario().getTipoItem());
        
        if(listaItem.isEmpty())
        {
            throw new Exception("Nenhum item cadastrado para o tipo de item vinculado pelo usuário.");
        }
        
        return listaItem;
    }
    
    public void gravarItem(Item item)
    {
        itemDAO.gravarItem(item);           
    }
    
}
